#!/usr/bin/env node

/**
 * 直接测试案件生成功能
 * 绕过API路由，直接调用案件生成函数
 */

import { generateCase } from './src/mastra/agents/case-generator.agent.js';

async function testDirectCaseGeneration() {
  console.log('开始直接测试案件生成功能...');
  
  try {
    console.log('\n=== 测试1: 简单难度案件 ===');
    const easyCase = await generateCase('easy', '办公室', 3);
    console.log('✅ 简单案件生成成功');
    console.log('案件标题:', easyCase.case.title);
    console.log('嫌疑人数量:', easyCase.suspects.length);
    console.log('线索数量:', easyCase.initialClues.length);
    
    console.log('\n=== 测试2: 普通难度案件 ===');
    const normalCase = await generateCase('normal', '学校', 4);
    console.log('✅ 普通案件生成成功');
    console.log('案件标题:', normalCase.case.title);
    console.log('嫌疑人数量:', normalCase.suspects.length);
    console.log('线索数量:', normalCase.initialClues.length);
    
    console.log('\n=== 测试3: 困难案件 ===');
    const hardCase = await generateCase('hard', '酒店', 5);
    console.log('✅ 困难案件生成成功');
    console.log('案件标题:', hardCase.case.title);
    console.log('嫌疑人数量:', hardCase.suspects.length);
    console.log('线索数量:', hardCase.initialClues.length);
    
    console.log('\n🎉 所有测试通过！案件生成功能正常工作。');
    
  } catch (error) {
    console.error('❌ 测试失败:', error);
    console.error('错误详情:', error.stack);
    
    // 如果AI Agent失败，测试降级方案
    console.log('\n尝试测试降级方案...');
    try {
      const { caseGenerationTool } = await import('./src/mastra/tools/case-generation.tool.js');
      const fallbackResult = await caseGenerationTool.execute({
        context: { difficulty: 'easy', theme: '办公室', suspectCount: 3 }
      });
      console.log('✅ 降级方案工作正常');
      console.log('降级案件标题:', fallbackResult.case.title);
    } catch (fallbackError) {
      console.error('❌ 降级方案也失败:', fallbackError);
    }
  }
}

// 运行测试
testDirectCaseGeneration().catch(console.error);
